home *** CD-ROM | disk | FTP | other *** search
/ Chip 2004 September / Chip_2004-09_cd1.bin / program / delphi / download / nastroje / 97.mpth_10[1].exe / {app} / scripts / Split File.mps < prev    next >
Text File  |  2003-08-24  |  1KB  |  49 lines

  1. number_radix = 16
  2. number_prefix = ''
  3. number_suffix = ''
  4.  
  5. = split a file into different pieces
  6.  
  7. option globalvars, 1
  8.  
  9. var bytesperpart dword, fname text, nameloop word
  10. var max dword, start dword, ende dword, curfn text, filein file, filedat file, filetemp file
  11. var data text sum dword blocks dword rest dword fsize dword
  12.  
  13. @@start
  14. bytesperpart = dword(input("Split file","Bytes per part", '65536'))
  15. fname = asksavefilename("Split file: Chose filename prefix"):= get part name (apppend .01, .02...)
  16. filedat = fileopen(fname+'.dat','c')
  17. filein = fileopen('::current')
  18. fsize = filesize(filein)
  19.  
  20. nameloop = 1
  21. sum = filesize(filein)
  22. blocks = sum / bytesperpart
  23. rest = sum mod bytesperpart
  24.  
  25. loop writeblockfile blocks
  26. if rest != 0
  27.   bytesperpart = rest
  28.   call writeblockfile
  29. endif
  30.  
  31. fileclose filedat
  32. fileclose filein
  33. showprogress 100
  34. end
  35.  
  36.  
  37. @@writeblockfile
  38. fileread filein data bytesperpart
  39. showprogress fsize, filepos(filein)
  40. curfn=fname+'.'+text(nameloop)
  41. filetemp = fileopen(curfn, 'c')
  42. filewrite filetemp data
  43. fileclose filetemp
  44. filewrite filedat (ExtractName(curfn) + "\n")
  45. inc nameloop 1
  46. return
  47.  
  48.  
  49.